package br.com.etecmatao.admin.controller;

import br.com.etecmatao.business.BusinessLocator;
import br.com.etecmatao.business.impl.BusinessLocatorImpl;
import br.com.etecmatao.model.Albuns;
import br.com.etecmatao.model.Fotos;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;
import org.richfaces.event.FileUploadEvent;
import org.richfaces.model.UploadedFile;

@ManagedBean
@ViewScoped
public class FormFotos {

    private Fotos fotos;
    private BusinessLocator businessLocator;
    private DataModel<Fotos> lista;
    private String url;


    public List<SelectItem> getListaAlbuns() {
        List<SelectItem> listaAlbuns = new ArrayList<SelectItem>();
        List<Albuns> albuns = businessLocator.getAlbunsBusiness().findByAll();
        SelectItem si= null;
        for (Albuns album : albuns) {
            si = new SelectItem(album);
            listaAlbuns.add(si);
        }
        return listaAlbuns;
    }

    public DataModel<Fotos> getLista() {
        lista = new ListDataModel<Fotos>(businessLocator.getFotosBusiness().finByAll());
        return lista;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public void setLista(DataModel<Fotos> lista) {
        this.lista = lista;
    }

    public FormFotos() {
        fotos = new Fotos();
        businessLocator = new BusinessLocatorImpl();
    }

    public Fotos getFotos() {
        return fotos;
    }

    public void setFotos(Fotos fotos) {
        this.fotos = fotos;
    }

    public void listener(FileUploadEvent event) throws Exception {
        UploadedFile item = event.getUploadedFile();
        fotos.setImagem(item.getData());
    }
    
    public void save() {
        fotos.setLogin((br.com.etecmatao.model.Login) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("user"));
        fotos.setStatus("A");
        fotos.setData(new Date());
        if (fotos.getIdFotos() != null) {
            businessLocator.getFotosBusiness().update(fotos);
        } else {
            businessLocator.getFotosBusiness().save(fotos);
        }
        FacesContext.getCurrentInstance().addMessage("messages", new FacesMessage("Cadastro realizado com sucesso"));
    }

    public void delete(){
        fotos = lista.getRowData();
        businessLocator.getFotosBusiness().delete(fotos);
    }

    public String editar(){
        fotos = lista.getRowData();
        return "formFotos";
    }

    public String create(){
        fotos = new Fotos();
        return "formFotos";
    }
}
